/**
 * @file AreaCommand.hpp
 *
 * @date 25/12/2011
 * @author Tales 
 *
 */

#ifndef AREACOMMAND_HPP_
#define AREACOMMAND_HPP_

#include "Command.hpp"
#include <utility>
#include "AreaCommandType.hpp"

namespace yep
{
using namespace std;

/**
 * @brief Representa qualquer um dos comando que operam sobre áreas (Retangulos, elípses etc)
 */
class AreaCommand: public yep::Command
{
public:
	AreaCommand(AreaCommandType type, const pair<int, int> &p1_, const pair<int, int> & p2_, const Color &color, int layer);

	virtual void execute(PictureState &pictureState);
private:
	AreaCommandType type;
	pair<int, int> p1, p2;
};

} /* namespace yep */
#endif /* AREACOMMAND_HPP_ */
